package com.cvpoc.service.impl;

import java.util.List;

import com.cvpoc.dto.FormationInitialeDTO;
import com.cvpoc.exception.BusinessException;
import com.cvpoc.hibernate.dao.FormationInitialeDao;
import com.cvpoc.service.FormationInitialeService;
import com.cvpoc.service.JasperService;

public class FormationInitialeServiceImpl implements FormationInitialeService {

	private FormationInitialeDao formationInitialeDao;
	private JasperService jasperService;

	public void setFormationInitialeDao(FormationInitialeDao dao) {
		this.formationInitialeDao = dao;
	}

	public void setJasperService(JasperService jasperService) {
		this.jasperService = jasperService;
	}

	@Override
	public Integer createFormationInitiale(
			FormationInitialeDTO pFormationInitialeDTO) {
		return formationInitialeDao
				.createFormationInitiale(pFormationInitialeDTO);
	}

	@Override
	public List<FormationInitialeDTO> findListFormationInitialeByIdCollaborateur(
			int pIdCollaborateur) throws BusinessException {
		return formationInitialeDao
				.findFormationInitialeByIdCollaborateur(pIdCollaborateur);
	}

	@Override
	public void deleteFormationInitiale(int pIdFormationInitiale) {
		formationInitialeDao.deleteFormationInitiale(pIdFormationInitiale);
	}

	@Override
	public void updateFormationInitiale(
			FormationInitialeDTO pFormationInitialeDTO) {
		formationInitialeDao.updateFormationInitiale(pFormationInitialeDTO);
	}

	@Override
	public FormationInitialeDTO findFormationInitialeById(int pId) {
		return formationInitialeDao.findFormationInitialeById(pId);
	}

	@Override
	public String genererPDFListeFormationInitialeByIdCollaborateur(
			int pIdCollaborateur) throws BusinessException {

		try {
			return jasperService.creerPdf("listesFormationsInitiales",
					"listesFormationsInitiales");
		} catch (Exception e1) {
			throw new BusinessException("formationInitiale.erreur.generationPDF");
		}

		// // - Paramètres de connexion à la base de données
		// // String url = "jdbc:mysql://localhost/gestioncv";
		// // String login = "root";
		// // String password = "";
		// // Connection connection = null;
		//
		// try {
		// // - Connexion à la base
		// // Driver monDriver = new com.mysql.jdbc.Driver();
		// // DriverManager.registerDriver(monDriver);
		// // connection = DriverManager.getConnection(url, login, password);
		//
		// // - Chargement et compilation du rapport
		// JasperDesign jasperDesign = JRXmlLoader.load("D:\\classic.jrxml");
		// JasperReport jasperReport = JasperCompileManager
		// .compileReport(jasperDesign);
		//
		// // - Paramètres à envoyer au rapport
		// Map<String, Integer> parameters = new HashMap<String, Integer>();
		// parameters.put("id_collaborateur", pIdCollaborateur);
		//
		// // - Execution du rapport
		// // JasperPrint jasperPrint = JasperFillManager.fillReport(
		// // jasperReport, parameters, connection);
		//
		// JRBeanCollectionDataSource dataSource;
		//
		// dataSource = new JRBeanCollectionDataSource(
		// this.findListFormationInitialeByIdCollaborateur(pIdCollaborateur));
		//
		// JasperPrint jasperPrint = JasperFillManager.fillReport(
		// jasperReport, parameters, dataSource);
		//
		// // - Création du rapport au format PDF
		// JasperExportManager.exportReportToPdfFile(jasperPrint,
		// "D:\\formationInitiale.pdf");
		// } catch (JRException e) {
		//
		// e.printStackTrace();
		// // } catch (SQLException e) {
		// //
		// // e.printStackTrace();
		// }
	}
}
